//app.js
import {
  config
} from './utils/config';
App({
  onLaunch: function () {

    if (wx.canIUse('getUpdateManager')) {
      const updateManager = wx.getUpdateManager()
      updateManager.onCheckForUpdate(function (res) {
        console.log('onCheckForUpdate====', res)
        // 请求完新版本信息的回调
        if (res.hasUpdate) {
          console.log('res.hasUpdate====')
          updateManager.onUpdateReady(function () {
            wx.showModal({
              title: '更新提示',
              content: '新版本已经准备好，是否重启应用？',
              success: function (res) {
                console.log('success====', res)
                if (res.confirm) {
                  // 新的版本已经下载好，调用 applyUpdate 应用新版本并重启
                  updateManager.applyUpdate()
                }
              }
            })
          })
          updateManager.onUpdateFailed(function () {
            // 新的版本下载失败
            wx.showModal({
              title: '已经有新版本了哟~',
              content: '新版本已经上线啦~，请您删除当前小程序，重新搜索打开哟~'
            })
          })
        }
      })
    } else {
      wx.showModal({ // 如果希望用户在最新版本的客户端上体验您的小程序，可以这样子提示
        title: '提示',
        content: '当前微信版本过低，无法使用该功能，请升级到最新微信版本后重试。'
      })
    }

    let _this = this;
    this.globalData.myDevice = wx.getSystemInfoSync()
    wx.getUserInfo({
      withCredentials: true,
      success: function (res) {
        //此处为获取微信信息后的业务方法
        _this.globalData.userInfo = res.userInfo;
        wx.setStorageSync("userInfo", res.userInfo);
      },
      fail: function () {
        //获取用户信息失败后。请跳转授权页面
        wx.showModal({
          title: '警告',
          content: '尚未进行授权，请点击确定跳转到授权页面进行授权。',
          success: function (res) {
            if (res.confirm) {
              console.log('用户点击确定')
              wx.navigateTo({
                url: '/pages/login/login',
              })
            }
          }
        })
      }
    })

    wx.showLoading({
      title: '数据加载中...',
    })
    wx.request({
      url: config.api_url + "/api/plugin/integration-wxapp-plugin/monster/getMonsterInfo",
      method: "GET",
      headers: {
        "Content-Type": "application/json"
      },
      success: function (e) {
        if (e.data.code == 200) {
          _this.globalData.monsters = e.data.result.monsters;
          _this.globalData.frames = e.data.result.frames;
          wx.setStorageSync("monsters", e.data.result.monsters);
          wx.setStorageSync("frames", e.data.result.frames);
          console.log(e)
        } else {
          wx.showToast({
            title: '数据同步失败,请联系开发者',
            icon: 'none',
            duration: 2000
          })
          console.log('数据获取失败' + e.data.message);
        }
        wx.hideLoading();
      },
      fail: function (e) {
        wx.hideLoading();
        wx.showToast({
          title: '数据同步失败,请联系开发者',
          icon: 'none',
          duration: 2000
        })
      }
    });

    let openid = wx.getStorageSync('openid')
    // 登录
    wx.login({
      success: res => {
        let nickName = "";
        let avatarUrl = "";
        let userinfo = wx.getStorageSync("userInfo");
        if (userinfo.nickName) {
          nickName = userinfo.nickName;
        }
        if (userinfo.avatarUrl) {
          avatarUrl = userinfo.avatarUrl;
        }
        let data = {
          code: res.code,
          avatarUrl: avatarUrl,
          openid: openid,
          nickName: nickName
        }
        wx.request({
          url: config.api_url + "/api/plugin/integration-wxapp-plugin/user/login",
          method: "POST",
          data: data,
          headers: {
            "Content-Type": "application/json"
          },
          success: function (e) {
            if (e.data.code == 200) {
              console.log(e)
              if (e.data.result && e.data.result.openid) {
                wx.setStorageSync("openid", e.data.result.openid);
              }
            } else {
              console.log('数据获取失败' + e.data.message);
            }
            wx.hideLoading();
          },
          fail: function (e) {
            wx.hideLoading();
            console.log('数据获取失败异常' + e.data.message);
          }
        });
        // 发送 res.code 到后台换取 openId, sessionKey, unionId
      }
    })
    // 获取用户信息
    // wx.getSetting({
    //   success: res => {
    //     if (res.authSetting['scope.userInfo']) {
    //       // 已经授权，可以直接调用 getUserInfo 获取头像昵称，不会弹框
    //       wx.getUserInfo({
    //         success: res => {
    //           // 可以将 res 发送给后台解码出 unionId
    //           _this.globalData.userInfo = res.userInfo

    //           // 由于 getUserInfo 是网络请求，可能会在 Page.onLoad 之后才返回
    //           // 所以此处加入 callback 以防止这种情况
    //           if (this.userInfoReadyCallback) {
    //             this.userInfoReadyCallback(res)
    //           }
    //         }
    //       })
    //     }
    //   }
    // })
  },
  globalData: {
    userInfo: null,
    monsters: [],
    frames: []
  }
})